package com.c611.smartclassroom.controller;

import com.c611.smartclassroom.common.DataGridView;
import com.c611.smartclassroom.model.User;
import com.c611.smartclassroom.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@EnableAutoConfiguration //yw 可以解决Could not autowire.No beans of "UserMapper' type found.提示
@RequestMapping("user")
public class UserController {
    @Autowired
    private UserService userService;

    /**
     * 按学校ID，教学楼，名字查询
     */
    @GetMapping("queryUser")
    public Object queryUser(String schoolId,String tBuildName,String name,Integer page,Integer limit){
        if(schoolId == null) schoolId="";
        if(tBuildName==null) tBuildName="";
        if(name==null) name="";
        if(page < 1 || limit < 1) return null;
        long count = userService.queryUserCount(schoolId,tBuildName,name);
        if((page - 1) * limit >= count) return null;
        //yw 以下两行是重新包装json添加的 返回类型为Object
        List<User> userList = userService.queryUser(schoolId,tBuildName,name,page,limit);
        return new DataGridView<User>(0,"ok",count,userList);
    }
    /**
     * 按姓名查询(模糊)
     * @param page 第几页， @param limit 每页大小
     * @return 返回显示页的对象集合
     */
    @GetMapping("queryUserByName")
    //@ResponseBody//不需要
    //yw pass返回多条记录使用方法http://localhost/user/queryUserByName?name=杨&page=1&limit=10
    //yw layui的url是'/user/queryUserByName',
    public  Object queryUserByName(String name,Integer page,Integer limit){
//        List<User> list1 = new ArrayList<User>(); //yw debug
//        User user1 = new User();
//        user1.setUsername("zs");
//        list1.add(user1);
        if(name==null) name="";
        //1,查询页数是否合理
        if(page < 1 || limit < 1) return null;
        //2,查询数据库中的用户表中记录总数
        long userCount = userService.queryUserCountByName(name);
        //3,计算该页是否为空(前一页的记录数都大于数据库总数)
        if((page - 1) * limit >= userCount) return null;
        //4，如果name是空的则赋为“”,查询所有记录

        //if(name.length()<1) name=""; //yw 原来的if(name == null)return null;没用
        List<User> userList = userService.queryUserByName(name,page,limit);
        return new DataGridView<User>(0,"ok",userCount,userList);
    }
    /**
     * 增加用户
     * @param user 用户对象
     * @return  成功返回1，失败返回0
     */
    @PostMapping("addUser")
    //yw pass使用方法localhost:80/user/addUser?userid=32&usertel=13097220806&username=zhangsan&userrealname=张三&userpwd=111111&authcode=102&authcroomid=C611&schoolid=11
    //yw 所谓控制器其实是接受前台数据转给后台处理
    public int addUser(User user){
        if(user == null) return 0;
//        User user = new User();
//        user.setUserid("1");
//        user.setUsername("zhangsan");
//        user.setUserrealname("张三");
//        user.setUserpwd("111111");
//        user.setAuthcode("102");
//        user.setAuthcroomid("C611");
//        user.setSchoolid("11");
        return userService.addUser(user);
    }

    /**
     * 更新对象
     * @param user 用户对象
     * @return 成功返回1，失败返回0
     */
    @PostMapping("saveUser")
    //yw pass使用方法 localhost:80/user/saveUser?userid=32&usertel=13097220806&username=zhangsan&userrealname=李四&userpwd=111111&authcode=102&authcroomid=C611&schoolid=11
    public int saveUser(User user){
        if(user == null) return 0;
        return userService.saveUser(user);
    }

    /**
     * 删除对象
     * @param userId 用户ID
     * @return 成功返回1，失败返回0
     */
    @PostMapping("delUser")
    //yw pass使用方法localhost:80/user/delUser?userId=32
    public int delUser(Integer userId){
        return userService.delUser(userId);
    }
}
